Nested virtualization technology has recently been proposed in virtualization technology that constructs a virtual computer (a virtual machine) on a computer. Nested virtualization technology is virtualization technology that runs a virtual machine on a virtual machine; for example, a basic input output system (BIOS) boots a virtual machine. In such technology, existing virtualization software (a virtual machine monitor), such as Xen (registered trademark), runs on that virtual machine.
Although virtual machine monitors that construct virtual machines basically perform processing using software, there are also virtual machine monitors that employ virtualization assistance mechanisms in which part of the processing of the virtual machine monitor is handled by hardware.
Technology has also been proposed in which hardware is used to virtualize and provide a virtualization assistance mechanism to a second level of virtualization in the nested virtualization technology described above. For example, virtualization technology has been proposed in which a CPU provided with a virtualization assistance mechanism operates in a normal mode and in a mode that provides the virtualization assistance mechanism. In such technology, a host virtual machine monitor (VMM) monitors a guest operating system (OS) when in the mode that provides the virtualization assistance mechanism. The operation mode of the CPU switches between a host mode in which the host VMM operates and a user mode in which a guest VMM or a user program operates. The host VMM emulates instructions from the guest VMM and the guest OS under specific conditions. A virtual CPU assigned to the virtual machine in which the guest OS operates is thereby made available to the guest OS such that the virtualization assistance mechanism is provided to the guest OS.
When an input/output (I/O) device assigned to the virtual machine accesses memory space, this is known as direct memory access (DMA). Technology known as DMA remapping (DMAR) has been proposed as a virtualization assistance mechanism that translates addresses of DMA by such an I/O device. Hardware that provides such a DMAR virtualization assistance mechanism is known as DMAR-hardware (DMAR-HW).